home *** CD-ROM | disk | FTP | other *** search
/ Linux Cubed Series 2: Applications / Linux Cubed Series 2 - Applications.iso / circuits / ocean / cacd_bin.000 / cacd_bin / lib / include / dmincl.h < prev    next >
C/C++ Source or Header  |  1994-05-06  |  18KB  |  571 lines

  1. /* SccsId = "@(#)dmincl.h 3.31 (TU-Delft) 04/28/93" */
  2. /**********************************************************
  3.  
  4. Name/Version      : The Design Data Management Project
  5.  
  6. Language          : C
  7. Operating system  : UNIX SYSTEM V
  8. Host machine      : HP9000/S500
  9.  
  10. Author(s)         : S. de Graaf
  11.                     T.G.R. van Leuken
  12.                     N. van der Meijs
  13.             P. van der Wolf
  14. Creation date     : 04-Dec-1986
  15. Modified by       : S. de Graaf
  16. Modification date : 17-May-1988
  17. Modified by       : P. Bingley
  18. Modification date : 15-Nov-1989
  19.  
  20.  
  21.         Delft University of Technology
  22.         Department of Electrical Engineering
  23.         Network Theory Section
  24.         Mekelweg 4 - P.O.Box 5031
  25.         2600 GA Delft
  26.         The Netherlands
  27.  
  28.         Phone : 015 - 786234
  29.  
  30.         COPYRIGHT (C) 1985-1988, All rights reserved
  31. **********************************************************/
  32. #ifndef __DMINCL_H
  33. #define __DMINCL_H
  34.  
  35. /*
  36. ** ICD defines
  37. */
  38. #define DM_MAXNOMASKS    24
  39. #define DM_MAXNAME    14
  40. #define DM_MAXLAY    4
  41.  
  42. #define DM_MAXPROCESSES    64
  43. #define DM_MAXPROJECTS    128
  44. #define DM_MAXCELLS    5120
  45. #define DM_MAXKEYS    (2 * DM_MAXCELLS)
  46. #define DM_MAXSTREAMS    64
  47.  
  48. /*
  49. ** DM_NOVIEWS == sizeof (dmviews) / sizeof (char *)
  50. */
  51. #define    DM_NOVIEWS    3
  52.  
  53. /*
  54. ** Process defines
  55. */
  56. #define    DM_OTHER_MASK    0
  57. #define    DM_INTCON_MASK    1
  58. #define    DM_SYMB_MASK    2
  59.  
  60. typedef struct {
  61.     int     nomasks;        /* number of masks */
  62.     char   *pr_name;        /* process name */
  63.     char   *pr_type;        /* process type */
  64.     char   *pr_info;        /* process info */
  65.     char  **mask_name;        /* mask name */
  66.     char  **mask_info;        /* mask name info */
  67.     int    *mask_no;        /* mask number */
  68.     int    *mask_type;        /* mask type */
  69.     int    *pgt_no;        /* if(1) process this mask */
  70.     int    *pgt_type;        /* pgt pos./neg. mask number */
  71.     struct device {
  72.     int     code;        /* color code */
  73.     int     fill;        /* filling info */
  74.     } **CM, **RT, **PLOT;
  75. } DM_PROCDATA;
  76.  
  77. /*
  78. ** Error defines
  79. */
  80. extern char *dmerrlist[];
  81. extern int   dmnerr;
  82. extern int   dmerrno;
  83.  
  84. #define DME_SYS     1    /* error in system call */
  85. #define DME_DDM        2    /* DDM internal error */
  86. #define DME_BADARG      3    /* bad arguments call */
  87. #define DME_MODE    4    /* mode is invalid for key */
  88. #define DME_BADPR    5    /* bad project */
  89. #define DME_BADVIEW    6    /* bad view */
  90. #define DME_NOCELL    7    /* cell does not exist */
  91. #define DME_BADKEY      8    /* bad key */
  92. #define DME_LOCK        9    /* cell is locked */
  93. #define DME_PRIM        10    /* can't open primary file */
  94. #define DME_RECUR       11    /* illegal recursion */
  95. #define DME_EXIST    12    /* cell already exists */
  96. #define DME_TECH    13    /* can't open technology file */
  97. #define DME_PUT        14    /* dmPutDesignData write error */
  98. #define DME_GET        15    /* dmGetDesignData read error */
  99. #define DME_FMT        16    /* bad format */
  100. #define DME_PRID    17    /* unknown process id */
  101. #define DME_PRDATA    18    /* can't access process data */
  102. #define DME_CORE    19    /* no more core */
  103. #define DME_PRREAD    20    /* process data read error */
  104. #define DME_CVIEW    21    /* bad current view */
  105. #define DME_BADNAME    22    /* bad name */
  106. #define DME_NOVIEW    23    /* view does not exist */
  107. #define DME_EXVIEW    24    /* view already exists */
  108. #define DME_PRLOCK    25    /* project is locked */
  109. #define DME_FOPEN     26    /* cannot open file */
  110. #define DME_BADENV    27    /* bad DDM environment */
  111. #define DME_NOCELLL    28    /* no celllist present */
  112. #define DME_INIT    29    /* already initialized */
  113. #define DME_NOPRJL    30    /* no project list present */
  114. #define DME_NOIMPCL    31    /* no imported celllist present */
  115. #define DME_NODMRC     32    /* cannot open file .dmrc */
  116. #define DME_BADREL    33    /* bad release */
  117. #define DME_NOINIT    34    /* not yet initialized */
  118. #define DME_DMANERR    35    /* design manager error */
  119. #define DME_DMANRR    36    /* design manager rejects request */
  120. #define DME_NOROOT    37    /* cell is not a root */
  121. #define DME_NOFATH    38    /* no father cell */
  122.  
  123. #define PROJ_READ    01
  124. #define PROJ_WRITE    02
  125. #define DEFAULT_MODE    (PROJ_READ | PROJ_WRITE)
  126. #define DEFAULT_PROJECT    "."
  127.  
  128. #define LOCAL        0
  129. #define IMPORTED    1
  130.  
  131. /* 
  132. ** DDM version types
  133. */
  134. #define        ACTUAL        "actual"
  135. #define         WORKING         "working"
  136. #define        BACKUP        "backup"
  137. #define        DERIVED        "derived"
  138. #define        DONTCARE    0
  139.  
  140. /* 
  141. ** DDM views
  142. */
  143. #define        LAYOUT        "layout"
  144. #define        CIRCUIT        "circuit"
  145. #ifdef MSDOS
  146. #define        FLOORPLAN    "floorpln"
  147. #else
  148. #define        FLOORPLAN    "floorplan"
  149. #endif
  150.  
  151. /* 
  152. ** modes for dmCheckOut
  153. */
  154. #define         READONLY           01
  155. #define         UPDATE          02
  156. #define         ATTACH          04
  157. #define         CREATE          010   /* used internally only */
  158.  
  159. /* 
  160. ** modes for dmCheckIn
  161. */
  162. #define        CONTINUE    0
  163. #define        COMPLETE    1
  164. #define        QUIT        2
  165.  
  166. /* 
  167. ** modes for dmGetMetaDesignData and dmPutMetaDesignData
  168. */
  169. #define IMPORTEDCELLLIST    0
  170. #define CELLEQUIVALENCE        1
  171. #define PROCESS            2
  172. #define CELLLIST        3
  173. #define PROJECTLIST        4
  174. #define EXISTCELL        5
  175. #define EXISTVIEW        6
  176. #define PROCPATH        7
  177. #define CELLISROOT        8
  178. #define FATHERCELL        9
  179.  
  180. /* 
  181. ** DDM environment
  182. */
  183. #define         DM_HOME        dmhome
  184. #define         DM_VIEW        dmcur_view
  185. #define         DM_PLS        dmpls
  186. #define         DM_PROMPT    dmprompt
  187. #define        DM_TOOLBOX    dmtoolbox
  188.  
  189. /* 
  190. ** non-orthogonal element codes
  191. */
  192. #define         RECT_NOR    1
  193. #define         POLY_NOR    2
  194. #define         CIRCLE_NOR    3
  195. #define         SBOX_NOR    4
  196. #define         WIRE_NOR    5
  197.  
  198. /*
  199. ** the following defines are the internal format identifications 
  200. ** for the dmGetDesignData and dmPutDesignData functions
  201. */
  202. #define GEO_INFO    0
  203. #define GEO_BOX        1
  204. #define GEO_MC        2
  205. #define GEO_LUP        3
  206. #define GEO_TERM    4
  207. #define GEO_NOR_INI    5
  208. #define GEO_NOR_XY    6
  209. #define GEO_BOXLAY    7
  210. #define GEO_TERMLAY    8
  211. #define GEO_VLNLAY    9
  212. #define GEO_TEQ        10
  213. #define GEO_TID        11
  214. #define GEO_INFO2    12
  215. #define GEO_INFO3    13
  216. #define    GEO_NXX_INI    14
  217. #define GEO_NXX_XY    15
  218. #define GEO_ABSTR    16
  219. #define GEO_EXPSET    17
  220. #define GEO_PLOT    18
  221. #define GEO_SPEC    19
  222. #define GEO_FLOC        20
  223. #define GEO_GLN         21
  224.  
  225. #define CIR_MC        100
  226. #define CIR_TERM    101
  227. #define CIR_NET        102
  228. #define CIR_SLS        103
  229. #define CIR_INFO    104
  230. #define CIR_GRAPHIC    105
  231. #define CIR_SWIFT    106
  232. #define CIR_FAULT    107
  233. #define CIR_NET_ATOM    108
  234.  
  235. #define FLP_MC          200
  236. #define FLP_INFO        201
  237. #define FLP_TERM        202
  238. #define FLP_CHAN        203
  239.  
  240. /*
  241. ** structure templates for data transfer with the
  242. ** dmGetDesignData and dmPutDesignData functions.
  243. */
  244. struct geo_info {        /* bounding boxes of "info" file */
  245.     long    bxl, bxr, byb, byt;
  246. };
  247.  
  248. struct geo_info2 {        /* makebox/vln info of "info" file */
  249.     long    nr_boxes, nr_groups;
  250. };
  251.  
  252. struct geo_info3 {        /* makebox info of "info" file */
  253.     long    bxl, bxr, byb, byt;    /* expansion window */
  254.     long    nr_samples;        /* number of samples used */
  255. };
  256.  
  257. struct geo_mc {            /* cell call information, "mc" file */
  258.     char    inst_name[DM_MAXNAME + 1]; /* cell instance name */
  259.     char    cell_name[DM_MAXNAME + 1]; /* cell name */
  260.     long    imported;        /* local or imported flag */
  261.     long    mtx[6];        /* orientation, scaling and translation */
  262.     long    bxl, bxr, byb, byt;    /* bounding box inclusive repetition */
  263.     long    dx, nx, dy, ny;    /* repetition parameters */
  264. };
  265.  
  266. struct geo_lup {        /* link-up information, "lup" file */
  267.     char    cell_name[DM_MAXNAME + 1]; /* cell name */
  268.     long    count;        /* number of link-ups */
  269. };
  270.  
  271. struct geo_box {        /* box information, "box" file */
  272.     long    layer_no;        /* layer number */
  273.     long    xl, xr, yb, yt;    /* co-ordinates */
  274.     long    bxl, bxr, byb, byt;    /* bounding box inclusive repetition */
  275.     long    dx, nx, dy, ny;    /* repetition parameters */
  276. };
  277.  
  278. struct geo_term {        /* terminal information, "term" file */
  279.     char    term_name[DM_MAXNAME + 1]; /* terminal name */
  280.     long    layer_no;        /* layer number */
  281.     long    xl, xr, yb, yt;    /* co-ordinates */
  282.     long    bxl, bxr, byb, byt;    /* bounding box inclusive repetition */
  283.     long    dx, nx, dy, ny;    /* repetition parameters */
  284. };
  285.  
  286. struct geo_nor_ini {        /* non-orth element info, "nor" file */
  287.     long    layer_no;        /* layer number */
  288.     long    elmt;        /* element code */
  289.     long    no_xy;        /* number of co-ordinate pairs */
  290.     long    bxl, bxr, byb, byt;    /* bounding box exclusive repetition */
  291.     long    r_bxl, r_bxr, r_byb, r_byt;    /* bounding box incl. repetition */
  292.     long    nx, ny;        /* repetition counts */
  293.     double  dx, dy;        /* repetition distances */
  294. };
  295.  
  296. struct geo_nor_xy {        /* non-orth element info, "nor" file */
  297.     double  x, y;        /* x and y co-ordinate or parameter */
  298. };
  299.  
  300. struct geo_boxlay {        /* expanded boxes, "lay_bxx" file */
  301.     long    xl, xr, yb, yt;    /* co-ordinates */
  302.     long    chk_type;        /* check-type */
  303. };
  304.  
  305. struct geo_termlay {        /* expanded terminals, "t_lay_bxx" file */
  306.     long    xl, xr, yb, yt;    /* co-ordinates */
  307.     long    term_number;    /* terminal number */
  308. };
  309.  
  310. struct geo_nxx_ini {        /* expanded non-orth element, "lay_nxx" file */
  311.     long    elmt;        /* element code */
  312.     long    no_xy;        /* number of co-ordinate pairs */
  313. /*
  314. ** If elmt-code is CIRCLE_NOR the following part contains
  315. ** the circle data.  The polygon by means of which the circle
  316. ** can be approximated is in this case stored in the geo_nxx_xy
  317. ** records that follow this geo_nxx_ini.   
  318. */
  319.     double  xc, yc;        /* centre co-ordinates */
  320.     double  r1, r2;        /* outer and inner radius */
  321.     double  a1, a2;        /* start and stop angle */
  322. };
  323.  
  324. struct geo_nxx_xy {        /* expanded non-orth element, "lay_nxx" file */
  325.     double  x, y;        /* x and y co-ordinate or parameter */
  326. };
  327.  
  328. struct geo_vlnlay {        /* vertical line segments, "lay_vln" file */
  329.     long    x;            /* x co-ordinate */
  330.     long    yb, yt;        /* y-bottom and y-top values */
  331.     char    occ_type;        /* occurrence type */
  332.     char    con_type;        /* connect type */
  333.     long    grp_number;        /* identifies part of a layer */
  334.     long    chk_type;        /* check type */
  335. };
  336.  
  337. struct geo_teq {        /* equivalence file, "teq" file */
  338.     long    term_number, grp_number;
  339. };
  340.  
  341. struct geo_tid {        /* terminal identifiers, "tid" file */
  342.     long    term_offset;    /* terminal number */
  343.     char    cell_name[DM_MAXNAME + 1]; /* originating cell */
  344.     char    inst_name[DM_MAXNAME + 1]; /* instance name */
  345.     char    term_name[DM_MAXNAME + 1]; /* terminal name */
  346.     long    m_nx, m_ny;        /* cell repetition */
  347.     long    t_nx, t_ny;        /* terminal repetition */
  348. };
  349.  
  350. struct geo_spec {        /* special info for preplot, "spec" file */
  351.     char    layer[DM_MAXLAY + 1]; /* layer name */
  352.     long    xl, xr, yb, yt;    /* co-ordinates */
  353.     char    name[3*DM_MAXNAME + 4]; /* terminal or cell id. string */
  354. };
  355.  
  356. struct geo_floc {               /* fault location file */
  357.     int     number;             /* fault number */
  358.     int     type;               /* fault type */
  359.     long    xl, xr, yb, yt;     /* co-ordinates */
  360.     long    detect_time;        /* detection time */
  361. };
  362.  
  363. struct geo_gln {        /* gln format coordinates */
  364.     int xl, xr, yl, yr;
  365. };
  366.  
  367. struct cir_mc {            /* circuit call information, "mc" file */
  368.     char    cell_name[DM_MAXNAME + 1]; /* cell name */
  369.     char    inst_name[DM_MAXNAME + 1]; /* cell instance name */
  370.     long    imported;        /* local or imported flag */
  371.     char   *inst_attribute;    /* cell attributes */
  372.     long    inst_dim;        /* no. lower/upper pairs */
  373.     long   *inst_lower, *inst_upper;    /* lower and upper range */
  374. };
  375.  
  376. struct cir_term {        /* terminal information, "term" file */
  377.     char    term_name[DM_MAXNAME + 1]; /* terminal name */
  378.     char   *term_attribute;    /* terminal attributes */
  379.     long    term_dim;        /*  no. lower/upper pairs */
  380.     long   *term_lower, *term_upper;    /*  lower and upper range */
  381. };
  382.  
  383. struct cir_net {        /* circuit net information, "net" file */
  384.     char    net_name[DM_MAXNAME + 1]; /* net name */
  385.     char   *net_attribute;    /* net attributes */
  386.     long    net_dim;        /* no. lower/upper pairs */
  387.     long   *net_lower, *net_upper;    /*  lower and upper range */
  388.     char    inst_name[DM_MAXNAME + 1]; /* instance name */
  389.     long    inst_dim;        /* no. lower/upper pairs */
  390.     long   *inst_lower, *inst_upper;    /*  lower and upper range */
  391.     long    ref_dim;        /* no. lower/upper pairs */
  392.     long   *ref_lower, *ref_upper;    /*  lower and upper range */
  393.     long    net_neqv;        /* no. sub cir_net struct's */
  394.     struct cir_net *net_eqv;    /* sub cir_net's */
  395. };
  396.  
  397. struct cir_sls {        /* "sls" file */
  398.     char   *sls_buffer;        /* io buffer */
  399.     long    sls_dim;        /* no. bytes in buffer */
  400. };
  401.  
  402. struct cir_info {        /* "info" file */
  403.     long    bxl, bxr, byb, byt;    /* circuit bounding box */
  404. };
  405.  
  406. struct cir_graphic {        /* "graphic" file */
  407.     char   *graphic_buffer;    /* io buffer */
  408.     long    graphic_dim;    /* no. bytes in buffer */
  409. };
  410.  
  411. struct cir_swift { /* the swift file "swift" */
  412.   char    *swift_buffer;        /* io buffer for swift file */
  413.   long    swift_dim;         /* no. bytes in buffer */
  414. };
  415.  
  416. struct cir_fault { /* the faults list file "fault" */
  417.   long    number;              /* Fault number */
  418.   char    type[DM_MAXNAME+1];      /* Fault type */
  419.   char    *fault_attribute;      /* Fault attributes */
  420.   char  inst_name[DM_MAXNAME+1];  /* Instance name */
  421.   long    inst_dim;          /* no. lower/upper pairs */
  422.   long  *inst_lower, *inst_upper; /* lower and upper range */
  423.   long    ref_dim;          /* no. lower/upper pairs */
  424.   long  *ref_lower, *ref_upper;   /* lower and upper range */
  425.   long  fault_neqv;          /* no. sub cir_fault struct's */
  426.   struct cir_fault *fault_eqv;      /* sub cir_fault's */
  427. };
  428.  
  429. struct flp_mc {            /* cell call information, "mc" file */
  430.     char    inst_name[DM_MAXNAME + 1]; /* cell instance name */
  431.     char    cell_name[DM_MAXNAME + 1]; /* cell name */
  432.     long    imported;        /* local or imported flag */
  433.     long    mtx[6];        /* orientation, scaling and translation */
  434.     long    bxl, bxr, byb, byt;    /* bounding box inclusive repetition */
  435.     long    dx, nx, dy, ny;    /* repetition parameters */
  436. };
  437.  
  438. struct flp_info {        /* "info" file */
  439.     long    bxl, bxr, byb, byt;    /* cell bounding box */
  440. };
  441.  
  442. struct flp_term {        /* terminal information, "term" file */
  443.     char    term_name[DM_MAXNAME + 1]; /* terminal name */
  444.     char   *term_attribute;    /* terminal attributes */
  445.     long    layer_no;        /* layer number */
  446.     long    side;        /* sides terminal can be on */
  447.     long    xl, xr, yb, yt;    /* terminal co-ordinates */
  448.     long    bxl, bxr, byb, byt;    /* bounding box inclusive repetition */
  449.     long    dx, nx, dy, ny;    /* repetition parameters */
  450. };
  451.  
  452. struct flp_chan {        /* channel information, "chan" file */
  453.     char    channel_name[DM_MAXNAME + 1];
  454.     long    xl, yb, xr, yt;    /* channel position */
  455.     long    kind;        /* channel type */
  456.     long    order;        /* channel order */
  457.     long    flp_nlist;        /* number of flp_netlists */
  458.     struct flp_glr *flp_netlist;
  459. };
  460.  
  461. struct flp_glr {        /* global routing nets */
  462.     char    net_name[DM_MAXNAME + 1];
  463.     char   *net_attribute;    /* net attributes */
  464.     long    flp_nconnect;    /* number of flp_netconnects */
  465.     struct flp_connect *flp_netconnect;
  466. };
  467.  
  468. struct flp_connect {        /* the connects of a global routing net */
  469.     char    connect_name[DM_MAXNAME + 1];
  470.     long    connect_type;    /* the type of connect */
  471.     char    connect_origin[DM_MAXNAME + 1];
  472.                 /* a cell instance name or a channel name */
  473.     long    nx, ny;        /* repetition parameters */
  474. };
  475.  
  476. extern struct geo_info        ginfo;
  477. extern struct geo_info2        ginfo2;
  478. extern struct geo_info3        ginfo3;
  479. extern struct geo_box        gbox;
  480. extern struct geo_mc        gmc;
  481. extern struct geo_term        gterm;
  482. extern struct geo_nor_ini    gnor_ini;
  483. extern struct geo_nor_xy    gnor_xy;
  484. extern struct geo_boxlay    gboxlay;
  485. extern struct geo_termlay    gtermlay;
  486. extern struct geo_vlnlay    gvlnlay;
  487. extern struct geo_spec        gspec;
  488. extern struct geo_teq        gteq;
  489. extern struct geo_tid        gtid;
  490. extern struct geo_lup        glup;
  491. extern struct geo_nxx_ini    gnxx_ini;
  492. extern struct geo_nxx_xy    gnxx_xy;
  493. extern struct geo_floc          gfloc;
  494. extern struct geo_gln        ggln;
  495.  
  496. extern struct cir_mc        cmc;
  497. extern struct cir_term        cterm;
  498. extern struct cir_net        cnet;
  499. extern struct cir_sls        csls;
  500. extern struct cir_info        cinfo;
  501. extern struct cir_graphic    cgraphic;
  502. extern struct cir_swift     cswift;
  503. extern struct cir_fault     cfault;
  504.  
  505. extern struct flp_mc        fmc;
  506. extern struct flp_info        finfo;
  507. extern struct flp_term        fterm;
  508. extern struct flp_chan        fchan;
  509.  
  510. extern char *dmpls;        /* process locking code */
  511. extern char *dmhome;        /* home project */
  512. extern char *dmcur_project;    /* current project */
  513. extern char *dmcur_view;    /* current view */
  514. extern char *dmcur_cell;    /* current cell */
  515. extern char *dmprompt;        /* current prompt */
  516. extern char *dmtoolbox;        /* design tools */
  517.  
  518. extern char *dmviews[];        /* views that are supported */
  519.  
  520. typedef struct {
  521.     char   *alias;        /* local alias name for cell */
  522.     char   *cellname;        /* remote cell name */
  523.     char   *dmpath;        /* net-path to database */
  524. } IMPCELL;
  525.  
  526. typedef struct {
  527.     int       procid;        /* process identification */
  528.     double    lambda;        /* lambda value */
  529.     int       n_samples;    /* number of samples per lambda */
  530.     char     *netpath;        /* net-path to database */
  531.     char     *dmpath;        /* path to database */
  532.     char     *projectid;    /* project name */
  533.     int          mode;        /* project open mode */
  534.     int       projectno;    /* project key index */
  535.     char    **celllist[DM_NOVIEWS];    /* a celllist per view */
  536.     IMPCELL **impcelllist[DM_NOVIEWS];    /* an impcelllist per view */
  537.     DM_PROCDATA *maskdata;    /* pointer to the process data */
  538.     char     *toolname;        /* pointer to the tool name */
  539. } DM_PROJECT;
  540.  
  541. typedef struct {
  542.     DM_PROJECT *dmproject;    /* project key */
  543.     char       *cell;        /* cell name */
  544.     char       *versionstatus;
  545.     int         versionnumber;
  546.     char       *view;        /* view name */
  547.     int         mode;        /* cell checkout mode */
  548.     int         keyno;        /* cell key index */
  549. } DM_CELL;
  550.  
  551. typedef struct {
  552.     DM_CELL   *dmkey;        /* cell key */
  553.     FILE      *dmfp;        /* fopen file pointer */
  554.     char      *stream;        /* stream name */
  555.     char      *mode;        /* stream open mode */
  556.     int        streamno;    /* stream key index */
  557. } DM_STREAM;
  558.  
  559. extern char    icdpath[];
  560.  
  561. #define DM_NEW_MALLOC       1      /* used as arg to dmMemoryOptions */
  562. #define DM_NEW_STRINGSAVE   2      /* used as arg to dmMemoryOptions */
  563.  
  564. #include "dmproto.h"
  565. #include "dmfuncs.h"
  566. #ifdef MSDOS
  567. #define _dmSprintf  sprintf
  568. #endif
  569.  
  570. #endif /* __DMINCL_H */
  571.